package com.cin.cma.server.pos.service;

import com.cin.cma.common.model.finixx.base.BaseRequest;
import com.cin.cma.common.model.finixx.base.BaseResponse;
import com.cin.cma.common.model.finixx.request.*;
import com.cin.cma.common.model.finixx.response.*;

/**
 *
 * @Date：2024-07-18 14:42
 */
public interface ICardService {
    /**
     * 会员卡消费
     *
     * @param model
     * @return
     */
    CardConsumeResponse consume(CONCardConsumeRequest model) throws Exception;

    /**
     * 获取会员卡信息
     *
     * @param model
     * @return
     */
    CardInfoResponse getCardInfo(CardInfoRequest model) throws Exception;

    /**
     * 会员卡购票消费回滚
     *
     * @param model
     * @return
     */
    BaseResponse consumeRollback(ConsumeRollbackRequest model) throws Exception;

    /**
     * 获取会员卡摘要信息
     *
     * @param model
     * @return
     */
    SummaryInfoResponse summaryInfo(CardSummaryInfoRequest model) throws Exception;

    /**
     * 卡充值
     *
     * @param model
     * @return
     */
    CardAddMoneyResponse addMoney(CardAddMoneyRequest model) throws Exception;

    /**
     * 查询卡消费记录
     *
     * @param model
     * @return
     */
    CardQueryBuyingResponse buying(CardBuyingRequest model) throws Exception;

    /**
     * 查询卡充值记录
     *
     * @param model
     * @return
     */
    CardQueryAddMoneyResponse getAddMoney(CardMarkingRequest model) throws Exception;

    /**
     * 查询卡积分记录
     *
     * @param model
     * @return
     */
    CardQueryMarkingResponse getMarking(CardMarkingRequest model) throws Exception;

    /**
     * 修改会员卡密码
     *
     * @param model
     * @return
     */
    BaseResponse resetPwd(CardUpdatePwdRequest model) throws Exception;

    /**
     * 会员卡锁卡
     *
     * @param model
     * @return
     */
    BaseResponse lock(CardLockRequest model) throws Exception;

    /**
     * 会员卡激活
     *
     * @param model
     * @return
     */
    BaseResponse activation(CardActivationRequest model) throws Exception;

    /**
     * 修改会员卡信息
     *
     * @param model
     * @return
     */
    BaseResponse editMemberInfo(CardEditMemberInfoRequest model) throws Exception;

    /**
     * 会员卡发卡（卡务必已制卡状态）
     *
     * @param model
     * @return
     */
    CardSellResponse sell(CardSellRequest model) throws Exception;

    /**
     * 获取卡信息（发卡前）
     *
     * @param model
     * @return
     */
    CardSellInfoResponse sellInfo(CardSellInfoRequest model) throws Exception;

    /**
     * 会员卡发卡（卡务必已制卡状态）
     *
     * @param model
     * @return
     * @throws Exception
     */
    CardSellRechargeResponse sellRecharge(CardSellRechargeRequest model) throws Exception;

    /**
     * 获取会员卡使用政策列表
     *
     * @param model
     * @return
     */
    CardPrefabricateUsePolicyResponse getUsePolicyList(BaseRequest model) throws Exception;

    /**
     * 获取会员卡使用政策信息
     *
     * @param model
     * @return
     */
    CardUsePolicyResponse usePolicy(CardUsePolicyRequest model) throws Exception;

    /**
     * 获取会员卡等级政策信息
     *
     * @param model
     * @return
     */
    CardPrefabricateGradeResponse getGradeList(BaseRequest model) throws Exception;
}
